package com.neutech.shop.service.impl;

import com.neutech.shop.entity.CartItem;
import com.neutech.shop.mapper.CartItemMapper;
import com.neutech.shop.service.CartItemService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author Neuedu-远哥
 * @version 1.0
 * @date 2021/10/21 9:38
 */
@Service
public class CartItemServiceImpl implements CartItemService {
    @Resource
    private CartItemMapper cartItemMapper;
    @Override
    public void insert(CartItem cartItem) {
        // 判断是否是同一种商品
        // 如果相同，修改原购物车中购物项的数量
        List<CartItem> cartItems = selectAll();
        for(int i=0;i<cartItems.size();i++){
            // 从车里拿的
            CartItem ci = cartItems.get(i);
            if(cartItem.getProduct().getId().equals(ci.getProduct().getId())){
                ci.setQty(ci.getQty() + cartItem.getQty());
                // 更新数据库的pcount属性
                return;
            }
        }
        // 否则添加到数据库
        cartItemMapper.insert(cartItem);
    }

    @Override
    public List<CartItem> selectAll() {
        return cartItemMapper.selectAll();
    }
    @Override
    public Double getTotal(){
        List<CartItem> cartItems = cartItemMapper.selectAll();
        double sum = 0.0;
        for (int i = 0; i < cartItems.size(); i++) {
            CartItem ci = cartItems.get(i);
            sum +=ci.getQty() * ci.getUnitPrice();
        }
        return sum;
    }
}
